package com.ruoyi.quality.controller;

import java.util.List;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.quality.domain.TQualityFileItem;
import com.ruoyi.quality.domain.dto.TQualityBizEnterCheckDTO;
import com.ruoyi.quality.domain.dto.TQualityEnterCheckDTO;
import com.ruoyi.quality.service.ITQualityEnterCheckService;
import com.ruoyi.quality.service.ITQualityFileItemService;
import com.ruoyi.safe.domain.BizEnterCheck;
import com.ruoyi.safe.domain.dto.BizEnterCheckDTO;
import com.ruoyi.safe.domain.dto.EnterCheckDTO;
import com.ruoyi.safe.domain.dto.EntityIdAppDTO;
import com.ruoyi.safe.domain.vo.BizEnterCheckProjectVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 公司检查明细Controller
 * 
 * @author lxg
 * @date 2024-02-26
 */
@RestController
@RequestMapping("/quality/qualityEnterCheckProject")
public class TQualityEnterCheckController extends BaseController
{
    @Autowired
    ITQualityEnterCheckService iTQualityEnterCheckService;

    @Autowired
    private ITQualityFileItemService iTQualityFileItemService;

//    /**
//     * 查询企业检查-项目列表
//     */
//    @GetMapping("/list")
//    public TableDataInfo list(TQualityEnterCheckDTO tQualityEnterCheckDTO)
//    {
//        startPage();
//        List<BizEnterCheckProjectVO> list = iTQualityEnterCheckService.selectBizEnterCheckProjectList(
//                tQualityEnterCheckDTO, SecurityUtils.getLoginUser().getUser());
//        return getDataTable(list);
//    }

    /**
     * 拆分质量问题文件
     */
    @PostMapping("/splitFile")
    public AjaxResult splitFile(@RequestBody List<TQualityFileItem> listFileItems)
    {
        return toAjax(iTQualityEnterCheckService.splitFileNew(listFileItems));
    }
//
//    /**
//     * 公司检查--我参与的检查
//     * @param tQualityBizEnterCheckDTO
//     * @return
//     */
//    @PostMapping("/myList")
//    public R<Object> myList(@RequestBody TQualityBizEnterCheckDTO tQualityBizEnterCheckDTO)
//    {
//        BizEnterCheckDTO bizEnterCheckDTO = new BizEnterCheckDTO();
//        bizEnterCheckDTO.setPageNum(tQualityBizEnterCheckDTO.getPageNum());
//        bizEnterCheckDTO.setPageSize(tQualityBizEnterCheckDTO.getPageSize());
//        LoginUser loginUser = SecurityUtils.getLoginUser();
//        bizEnterCheckDTO.setUserName(loginUser.getUsername());
//
//        List<BizEnterCheck> list = iTQualityEnterCheckService.myList(bizEnterCheckDTO);
//        return R.ok(new PageInfo<>(list));
//    }

    /**
     * 公司检查--我的待办
     * @param tQualityBizEnterCheckDTO
     * @return
     */
    @GetMapping("/myTodo")
    public R<Object> myTodo(TQualityBizEnterCheckDTO tQualityBizEnterCheckDTO){
        BizEnterCheckDTO bizEnterCheckDTO = new BizEnterCheckDTO();
        bizEnterCheckDTO.setPageNum(tQualityBizEnterCheckDTO.getPageNum());
        bizEnterCheckDTO.setPageSize(tQualityBizEnterCheckDTO.getPageSize());
        LoginUser loginUser = SecurityUtils.getLoginUser();
        bizEnterCheckDTO.setUserName(loginUser.getUsername());
        bizEnterCheckDTO.setProjectId(tQualityBizEnterCheckDTO.getProjectId());
        bizEnterCheckDTO.setSelectType(tQualityBizEnterCheckDTO.getSelectType());

        List<EnterCheckDTO> list = iTQualityEnterCheckService.myTodo(bizEnterCheckDTO);
        return R.ok(new PageInfo<>(list));
    }

    /**
     * 修改公司检查中各项检查的状态为 2检查中、3已结束
     * @param entityIdAppDTO
     * @return
     */
    @PostMapping("/updateProjectStatus")
    public AjaxResult updateProjectStatus(@RequestBody EntityIdAppDTO entityIdAppDTO){

        Integer nSize = 0;
        if (entityIdAppDTO.getStatus().equals("3"))
        {
            nSize = iTQualityEnterCheckService.updateProjectStatus(entityIdAppDTO);
        }
        else if (entityIdAppDTO.getStatus().equals("2"))
        {
            nSize = iTQualityEnterCheckService.updateProjectStatusTwo(entityIdAppDTO);
        }
        if (nSize == 0)
        {
            return success();
        }
        else
        {
            return error();
        }
    }
}
